Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры инфа 1 семестр.docx
Скачиваний:
15
Добавлен:
08.07.2022
Размер:
3.45 Mб
Скачать

Сумма

S=0

for i in range():

S = S + M[i]

Print (‘…:\n’,S)

P=1

for i in range():

P = P * M[i]

Print (‘…:\n’,P)

P = P * M[i]

29. Mассивы. Двумерные массивы. Алгоритмы ввода и вывода двумерных массивов. Нахождение количества элементов , удовлетворяющих условий.

Массивы - это совокупность множества однородных объектов, составляющие одно целое.

Двумерные массивы - так называются массивы с двумя и т.д. индексом.

Ввод и вывод

Нахождение количества элементов , удовлетворяющих условий.

30. Mассивы. Двумерные массивы. Алгоритмы нахождения минимального и максимального элементов двумерного массива.

  • Сумма:

S =0

for i in range(len(M)):

for j in range(len(M[i])):

S+=M[i][j]

  • Произведение:

P=1

for i in range(len(M)):

for j in range(len(M[i])):

P*=M[i][j]

31. Массивы. Двумерные массивы. Обращение к элементам квадратной матрицы, расположенным на главной диагонали (выше, ниже), на побочной диагонали (выше, ниже).

Массивы - это структура данных в виде компонентов одного типа (элементов массива), расположенных в памяти непосредственно друг за

другом.

Квадратная матрица - это двумерный массив, в котором количество строк равно количеству столбцов. Обращение к элементу происходит также как и в обычном двумерном массиве A[i,j].

Определить, как расположен элемент относительно главной диагонали, помогут условия, накладываемые на индексы элемента:

i = j – элемент расположен на главной диагонали;

i > j – элемент расположен ниже главной диагонали;

i ≥ j – элемент расположен не выше главной диагонали;

i< j – элемент расположен выше главной диагонали;

i ≤ j – элемент расположен не ниже главной диагонали.

Расположение элемента относительно побочной диагонали укажет выполнение условий, накладываемых на индексы этого элемента:

I+j=n +1 – элемент расположен на побочной диагонали;

I+j>n +1 – элемент расположен ниже побочной диагонали;

I+j≥n +1 – элемент расположен не выше побочной диагонали;

I+j< n +1 - элемент расположен выше побочной диагонали;

I+j≤n +1 – элемент расположен не ниже побочной диагонали.

32,33.Одномерные массивы-списки. Ввод и вывод. Поэлементный ввод и вывод элементов массива-списка. Нахождение суммы, произведения, минимального и максимального элементов.

Список − изменяемая последовательность, содержащая от нуля и более объектов, которые могут быть разных типов (числа, строки и другие структуры)

Массивы - это совокупность множества однородных объектов, составляющие одно целое.

Ввод элементов массива-списка.

  • Использование функции split()

  • Использование включения (генератор списка)

Поэлементный ввод массива

  • Ввод одномерного массива-списка

  • Поиск минимального и максимального элементов

  • Нахождение суммы/произведения элементов

34.Реализация типовых алгоритмов обработки одномерных массивов для массивов-списков. Удаление элементов. Объединение элементов. Сдвиг элементов массива.

Реализация типовых алгоритмов

  • Нахождение количества элементов, удовлетворяющих определенному условию (найти количество элементов, больших числа 10)

  • Удаление элементов

  • Объединение массивов

  • Сдвиг элементов

35. Модуль array. Организация Ввода и вывода массивов array.

Модуль array определяет массивы в python: Import array

Для упрощенного доступа к модулю array: import array as a

Массивы используются редко, когда требуется высокая скорость обработки данных.

Ввод элементов массива

Добавление в массив элементов списка

Import array as a

From math import *

V1=a/array(‘b’, range(0))-пустой массив

V1/fromlist([1,2,3])

Поэлементный ввод элементов массива

V2=a.array(‘f’, range(0))- пустой массив

For I in range (5):

Print (‘введи’, i, “i-й элемент: “, sep = ‘ ‘, end = ‘ ‘)

V2.append (float (input ()).

Вывод элементов массива

Поэлементный вывод элементов массива

For I in range (5): – Поэлементный вывод массива

Print (V2[i])

Вывод массива целиком

Print (V2)

Вывод во внешний файл

mf = open(‘result.txt’, ‘w’)

print (V2, file = mf)

mf.close()

36.Модуль array.Методы массивов array

37. Модуль numpy. Общие хар-ки. Установка. Создание массива numpy. Генерация массивов специального вида. Свойства и методы массивов.

Модуль numpy предоставляет быстрый доступ к многомерным массивам и множество функций и методов для их обработки. import numpy as np

Основной структурой данных numpy является ndarray (N-dimentional array − многомерный массив).

Ранг массива в numpy − количество его измерений. В numpy предусмотрено множество способов создания массивов.

1 способ. На основе списка с использованием метода array(). Такой способ создания позволит значительно расширить множество операций по обработке массивов-списков

2 способ. Сгенерировать одномерный массив из чисел, отличающихся на величину шага, позволит рассмотренный ранее метод arange()

3 способ. Для создания массивов специального вида используется, прежде всего, метод zeros() – генерирует массив, все элементы которого равны 0

4 способ. Создать специальный массив, состоящий из единиц, поможет метод ones()

5 способ. Создание массивов, состоящих из случайных чисел, сгенерированных согласно различным законам распределения, также возможно посредством методов numpy. Рассмотрим сначала простейший случай – создание массива из случайных чисел, равномерно распределенных на интервале от 0 до 1, с помощью метода random() одноименного подмодуля библиотеки numpy.

6 способ. Для формирования массива numpy путем ввода отдельных элементов сначала следует создать массив требуемого размера, например, состоящий из нулей, а затем организовать его заполнение числами с клавиатуры или из внешнего файла.

Свойства массивов

  • array.ndim − размерность, ранг массива

  • array.size − размер, количество значений

  • array.shape − форма массива

  • Метод reshape() − изменение формы массива

Методы массивов

  • np.min(M) - минимальный элемент массива

  • np.max(M) - максимальный элемент массива

  • np.mean(M) - среднее арифметическое элементов

  • np.prod(M) - произведение элементов

  • np.sum(M) - сумма элементов

  • np.sort(M) - сортировка

  • np.sin(M) - синус от каждого элемента массива

  • np.arccos(M) - арккосинус от каждого элемента массива

  • np.trace(M) - сумма диагональных элементов

  • np.transpose(M) - транспонированная матрица

  • np.linalg.det(M) - определитель матрицы

  • np.linalg.inv(M) - обратная матрица

38. Модуль Numpy. Генерация массивов из случайных чисел. Методы массивов. Изменение формы массива.

NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами. numpy не является встроенным модулем Python.

import numpy as np − подключение модуля numpy с последующим обращением к нему через имя np Ранг массива в numpy − количество его измерений.

  • Заполнение случайными числами из диапазона от [-2; 4]

Заполнение случайными числами из диапазона от [-2; 4] с помощью подметoда uniform()

Методы массивов

  • np.min(M) - минимальный элемент массива

  • np.max(M) - максимальный элемент массива

  • np.mean(M) - среднее арифметическое элементов

  • np.prod(M) - произведение элементов

  • np.sum(M) - сумма элементов

  • np.sort(M) - сортировка

  • np.sin(M) - синус от каждого элемента массива

  • np.arccos(M) - арккосинус от каждого элемента массива

  • np.trace(M) - сумма диагональных элементов

  • np.transpose(M) - транспонированная матрица

  • np.linalg.det(M) - определитель матрицы

np.linalg.inv(M) - обратная матрица

Метод reshape() − изменение формы массива

39. Модуль Numpy. Методы линейной алгебры. Решение системы линейных уравнений.

Ранее рассмотрен способ создания массива из случайных чисел, равномерно распределенных с помощью метода random() одноименного подмодуля библиотеки numpy. Подмодуль random содержит и другие методы генерации случайных чисел согласно законам распределения: • uniform(a, b, shape) – равномерное; • laplace() – Лапласа; • normal() – нормальное распределение; • poisson() − Пуассона и др. Для создания массивов из целых чисел предназначены: • permutation(n) − перемешанный массив целых чисел от 0 до n–1; • randint(a, b, n) − массив из n целых чисел от a до b–1.

Для массива numpy, в частности, вычисляются (рисунок 7.14):

• np.max() – нахождение максимального элемента массива;

• np.min() – минимальный элемент массива;

• np.mean() – среднее арифметическое элементов массива;

• np.prod() – произведение элементов массива;

• np.sum() – сумма элементов;

• np.sort() – выполняется построчная сортировка массива

Модуль numpy включает математические функции:

• np.sin() – вычисление синуса каждого элемента массива;

• np.arccos() – вычисление арккосинуса каждого элемента и др.

Другие распространенные методы обработки массивов:

• np.alen() – длина массива (количество элементов одномерного массива или строк двумерного);

• np.diagonal(v) – создание квадратной матрицы с вектором v на главной диагонали;

• np.trace() – сумма диагональных элементов;

• np.transpose() – транспонирование массива. Библиотека numpy включает еще один весьма полезный подмодуль linalg, содержащий методы линейной алгебры, например:

• np.linalg.det(M) – вычисление определителя квадратной матрицы M;

• np.linalg.inv(M) – матрица, обратная M..

40. Понятие подпрограммы. Описание подпрограммы пользователя. Расположение в общей структуре программы . Вызов подпрограммы

Подпрограмма - это отдельная часть программы, имеющая имя и решающая свою отдельную задачу. Располагается подпрограмма в начале основной программы и может быть запущена (вызвана) из основной программы по указанию имени.

Подпрограммы-функции возвращают результат (число, символьную строчку и т.д.), который мы можем использовать в основной программе.

Каждая подпрограмма должна решать только одну задачу, либо только что-то вычислять, либо выводить какие-либо данные, либо делать что-то еще.

Подпрограммы бывают двух типов - процедуры и функции.

Подпрограммы-процедуры выполняют некоторые действия, например, выводят результат на экран в определенном виде (простой пример, оператор print() - это стандартная подпрограмма-процедура, которая выводит данные на экран). Подпрограммы-функции возвращают результат (число, символьную строчку и т.д.), который мы можем использовать в основной программе.

Функция:

  • определяется

  • вызывается

Формат описания:

def <имя>([<список формальных \

параметров>]):

<блок операторов>

Подпрограмма вызывается для выполнения по имени. В скобках указываются параметры, которые называются фактическими.

Формат оператора вызова подпрограммы

<имя функции>([<список фактических параметров>])

Определение функции выполняется до ее вызова в основной программе в инструкции def, создающей объект-процедуру в памяти.

Пример . Многократный вывод повторяющегося сообщения (обработка исключений)

41.Понятия формальных и фактических параметров. Позиционные и ключевые аргументы. Задание значений параметров по умолчанию.

42.Глобальные и локальные данные в программах с подпрограммами. Область видимости. Лямбда-функции

При использовании подпрограмм различают:

  1. локальные переменные − используются:

  2. в заголовке процедуры в скобках

  3. внутри процедуры

это внутреннее имя параметра (т. е. имя, по которому к нему можно обращаться только в процедуре). Доступ к ним из других подпрограмм невозможен

глобальные переменные − заданные и используемые вне подпрограммы. К ним можно обращаться по умолчанию, но изменять посредством инструкции global

Пример 4. Ввести число n. Вычислить с помощью функции пользователя сумму чисел от 1 до n.

s, i − локальные переменные

a − глобальная переменная

Лямбда-функция в Python − это анонимная функция, выраженная одним выражением и используемая в виде обычной функции.

43.Структура данных словарь. Инициализация. Добавление, изменение, удаление элементов. Объединение словарей.

Структуры данных – это структуры, которые могут хранить некоторые данные  вместе. Другими словами, они используются для хранения связанных данных.

В Python существуют четыре встроенных структуры данных: список, кортеж, словарь и множество. Посмотрим, как ими пользоваться, и как они могут облегчить нам жизнь.

Список – это структура данных, которая содержит упорядоченный набор элементов, т.е. хранит последовательность элементов. в Python каждуй элемент разделяется запятой.

Список элементов должен быть заключён в квадратные скобки. Как только список создан, можно добавлять, удалять или искать элементы в нём. Поскольку элементы можно добавлять и удалять, мы говорим, что список – это изменяемый тип данных, т.е. его можно модифицировать.

Кортежи служат для хранения нескольких объектов вместе. Их можно рассматривать как аналог списков, но без такой обширной функциональности, которую предоставляет класс списка. Одна из важнейших особенностей кортежей заключается в том, что они неизменяемы, так же, как и строки. Т.е. модифицировать кортежи невозможно.

Кортежи обозначаются указанием элементов, разделённых запятыми; по желанию их можно ещё заключить в круглые скобки.

Списки, кортежи и строки являются примерами последовательностей. Основные возможности – это проверка принадлежности (т.е. выражения “in” и “not in”) и оператор индексирования, позволяющий получить напрямую некоторый элемент последовательности.

Все три типа последовательностей, упоминавшиеся выше (списки, кортежи и строки), также предоставляют операцию получения вырезки, которая позволяет получить вырезку последовательности, т.е. её фрагмент.

Множества – это неупорядоченные наборы простых объектов. Они необходимы тогда, когда присутствие объекта в наборе важнее порядка или того, сколько раз данный объект там встречается.

Используя множества, можно осуществлять проверку принадлежности, определять, является ли данное множество подмножеством другого множества, находить пересечения множеств и так далее.

Метод update() объединяет два словаря.

44. Обработка ключей словаря. Стеки и очереди.

Метод keys() для словаря возвращает список всех используемых ключей в произвольном порядке; для сортировки списка нужно применить метод sort(). Для определения наличия определенного ключа есть оператор in. Добавление нового объекта в словарь не требует предварительных проверок: если ранее ключу уже соответствовало некоторое значение, оно будет перезаписано.

С помощью функции dict() — ключи при этом должны быть строками. С помощью этой функции можно избавить себя от обязательного условия заключать ключ в кавычки. В примере приведены четыре варианта создания одного и того же словаря. С помощью fromkeys() — создает словарь по списку ключей с пустыми значениями.

fromkeys() — создает словарь по заданным ключам с пустыми значениями.

get() — получает значение по ключу, в случае отсутствия дает None.

has_key() — проверяет, есть ли в словаре значение по данному ключу.

keys() — возвращает список ключей.

iterkeys() — возвращает итератор ключей.

pop() — извлекает значение по ключу с последующим удалением.

update() — изменяет значение по ключу.

del — оператор удаляет пару ключ: значение по ключу.

Для того чтобы сделать проход по ключам словаря, используем for.

45.Применение файловых данных. Типы файлов. Этапы работы с файлами. Создание дискриптора файла. Варианты доступа к файлу.

Закрытие файла автоматически.

With выражение as переменная

With open (‘ввод.txt, ‘w’) as myfile:

myfile.write(‘строка’)

После записи файл будет закрыт автоматически.

Местоположение в файле

myfile.tell()- текущее смещение от начала файла в байтах.

myfile.seek()– переход к другому смещению в файле.

Метод seek (offset,origin)– возвращает текущее смещение если:

Origin=0( по умолчанию)- на offset байт сначала файла.

Origin =1 на offset байт с текущей позицией.

Origin = 2 на offset

Структурированные файлы

Форматы и разделители

ФАЙЛЫ С РАЗДЕЛИТЕЛЯМИ ТАБУЛЯЦИЕЙ (‘\T’), ЗАПЯТАЯ (‘,’) И ДР.

СИМВОЛЫ ‘<’ , ‘>’ – XML И HTML ФАЙЛЫ.

ЗНАКИ ПРЕПИНАНИЯ (‘ ; ‘) И СКОБКИ ‘ { ‘ , ‘ } ’ – JSON.

ПРОБЕЛЫ –YAML

Файлы CSV– текстовый формат, предназначенный для представления табличных данных, записей баз данных.

Подключение модуля:

Import CSV

Python имеет множество функций для работы с файловой системой: Import OS

Одним из объектов модуля OS является path- содержит вспомогательные подметоды для обращения к файлам и объектам операционной системы по имени.

Проверка существования файла или каталога

Os.path.exists()

Проверка типа объектов

os.path.isfile (‘filename’)-возвращает тру если проверяемый объект является файлом.

Os.path.isdir(‘dirname’)- возвращает тру если объект является каталогом

Переименование файла

Os.rename (‘old name’ , ‘new name’)

Удаление файла

Os.remove (‘file name’)

Каталоги

Создание каталога:

Os.mkdir (‘dir name’)

Удаление каталога:

Os.rmdir (‘dir name’)

Удаление текущего каталога:

Os.chdir (‘dir name’)

Извлечение содержимого каталога:

Os.listdir (‘dir name’)

Дополнительно некоторые операции с файлами структурированы в модуле shutil

Копирование файлов:

Shutil.copy(‘old name’ , ‘ new name’)

Перемещение файлов

Shutil.move (‘old name’ , ‘ new name’)

46.Ввод (чтение) данных из внешнего файла. Функции ввода: сравнительная характеристика. Способы преобразования к стандартным типам данных.

Чтение из файлов CSV

With.open (‘cuts.txt’ , ‘r’) as cuts_in:

CSV_in = csv.reader(cuts_in)

Records_in=[row for row in cuts_in]

Print(record_in)

Csv.writer()-записывает строки.

Csv.reader() – считывает из файла строки

Преобразование в кортежи и списки

Чтобы преобразовать данные в кортеж или список, используйте методы tuple() и list() соответственно. В Python:

  • Список – это изменяемая упорядоченная последовательность элементов, взятая в квадратные скобки ([ ]).

  • Кортеж – неизменяемая упорядоченная последовательность элементов, взятая в круглые скобки.

Преобразование списка в кортеж

Преобразовывая список в кортеж, вы можете оптимизировать программу. Для преобразования в кортеж используется метод tuple().

print(tuple(['pull request', 'open source', 'repository', 'branch'])) ('pull request', 'open source', 'repository', 'branch')

Выведенные на экран данные являются кортежем, а не списком, поскольку они взяты в круглые скобки.

Попробуйте использовать tuple() с переменной:

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) ('shark', 'cuttlefish', 'squid', 'mantis shrimp')

В кортеж можно преобразовать любой итерируемый тип, включая строки:

print(tuple('Michael')) ('M', 'i', 'c', 'h', 'a', 'e', 'l')

Конвертируя в кортеж числовой тип данных, вы получите ошибку:

print(tuple(5000)) TypeError: 'int' object is not iterable

Преобразование в списки

Вы можете преобразовать кортеж в список, чтобы сделать его изменяемым.

Обратите внимание: при этом в методах list() и print() используется две пары круглых скобок. Одни принадлежать собственно методу, а другие – кортежу.

47.Вывод данных во внешний файл . Способы вывода с использованием функции print и write.

Для записи данных файл используется метод write(строка), при успешной записи он вернет количество записанных символов.

>>> f = open("test.txt", "a")

>>> f.write("строка")

>>> f.close()

Функция print

Mf= open (‘result.txt’ , ‘w’)

Print ( строка ,file=Mf)

Mf.close()

48. Функции обработки файлов. Формат использования. Основные характеристики. Примеры.

  • Файлы ввода-вывода (I/O − input and output), внешние файлы

  • Внешние файлы подразделяют на:

входные (с исходными данными) − input

выходные (с результатами работы программы) − output

1)Создать файловый объект (функция open())

  • myfile = open(‘data1.dat','r')

  • # создание нового файлового объекта

  • # на основе существующего файла

2) Выполнить чтение/запись файла, вызвав соответствующие функции (используя необходимые методы) или др. операции

3) Закрыть файл:

myfile.close()

# закрытие файла в конце работы

# очищает объект файла

Закрытие файла автоматически:

  • Чтобы все операции с файлом были завершены, файл должен быть закрыт в конце работы.

  • Использование менеджера контекста для очистки объектов (например, открытых файлов)

with выражение as переменная

with open(‘vyvod.txt’,’w’) as myfile: myfile.write(‘строка’)

  • после выполнения блока кода, файл будет закрыт автоматически

Варианты доступа к файлу:

Символ

Назначение

'r'

Открыть для чтения (по умолчанию)

'w'

Открыть для записи. Если файл не существует, он создается, а если существует − перезапишется

'x'

Создать новый файл для записи. Ошибка, если файл с указанным именем уже существует

'a'

Открыть для записи, добавляя данные в конец файла, если он существует

Вторая буква строки метода доступа

't' или отсутствует

Текстовый файл (по умолчанию )

'b'

Бинарный файл


Чтение/запись данных в файл:

read() Считывает весь файл целиком

readline() Считывает по одной строке за раз

readlines() Считывает по одной строке за раз и возвращает список считанных строк

write() Записывает во внешний файл строку

print() Выводит данные во внешний файл (при указании соответствующего значения file)

Применение файлов данных:

Работа с файлами, содержащими результаты измерений, в т. ч. полученные автоматически (АСУ), или отсканированные данные, требующие дальнейшего чтения и анализа.

Взаимодействие с другими программами. Данные, сохраненные в файлы, могут быть импортированы в другие приложения, и наоборот.

Сохранение информации для повторного использования, сравнения и анализа.

Обмен данными и результатами, возможно, на иной платформе, используя другое программное обеспечение.

49. Текстовые и бинарные файлы. Структурированные текстовые файлы.

  • CSV (Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных, записей баз данных.

-Каждая строка файла − одна строка таблицы.

-Разделитель − символ запятой (,). Возможны другие разделители (форматы TSV и др.)

-Значения, содержащие зарезервированные символы (“, запятая, ; и др.) обрамляются двойными кавычками ("). Кавычки представляются в файле в виде двойных кавычек

-В первой строке могут быть названия колонок.

Подключение модуля: import csv.

Пример записи csv-файла:

Чтение/запись файлов CSV:

Чтение из файла формата csv:

csv.writer() − записывает в файл указанного формата данные пользователя в строку с определенным разделителем

csv.writerows() − записывает список строк

csv.reader() − считывает из файла указанного формата строки с определенным разделителем.

Структурированные файлы:

Форматы и разделители:

  • файлы с разделителями табуляция (‘\t’), запятая (‘,’) и др. − CSV-файлы

  • символы ‘<’, ‘>’ − XML и HTML-файлы

  • знаки препинания (‘;’) и скобки ‘{’, ‘}’, ‘(’, ‘)’ − JSON (JavaScript Object Notation)

  • пробелы − YAML (Ain’t Markup Language − не язык разметки) и пр.

Для работы с каждым из перечисленных файлов подключают соответствующий модуль.

50. Работы с файловой системой. Модули и даты времени.

Работа с файловой системой:

-Python содержит множество функций для работы с файловой системой компьютера: import os.

-метод path содержит вспомогательные подметоды для обращения к файлам и каталогам операционной системы по полному или краткому имени (относительное обращение, работает только из текущего каталога).

Метод (объект) path модуля os:

Проверка существования файла или каталога: os.path.exists()

Проверка типа объекта файловой системы:

os.path.isfile(‘file_name’) − возвращает значение True, если проверяемый объект является файлом

os.path.isdir(‘dir_name’) − возвращает значение True, если проверяемый объект является каталогом

Некоторые сокращения в именах файлов и каталогов:

os.path.isdir(‘.’) − текущий каталог. Т. к. текущий каталог всегда существует, это значение всегда True

os.path.isdir(‘..’) − родительский каталог

Проверка, является ли указанный путь абсолютным: os.path.isabs()

Другие методы os:

Переименование файлов: os.rename('old_file_name', 'new_file_name')

Удаление файлов: os.remove('file_name')

Каталоги:

Создание каталога: os.mkdir(‘dir_name’)

Удаление каталога: os.rmdir(‘dir_name’)

Изменение текущего каталога (переход из одной папки в другую):os.chdir(‘dir_name’)

Извлечение содержимого каталога: os.listdir(‘dir_name’)

Другие модули: import shutil

Копирование файлов: shutil.copy(‘old_file_name’, ‘new_file_name’)

Перемещение файлов (файл копируется, затем удаляется оригинал): shutil.move(‘old_file_name’, ‘new_file_name’)

Календари и часы:

Даты могут быть представлены множеством способов:

06.12.2017 | 06 декабря 2017 | Декабрь, 6, 2017 | 12/6/2017 | 6/12/2017 …

Н екоторые модули и методы:

import calendar

Модуль для работы с календарем (с годами).

Проверка, является ли год високосным:

Модуль datetime

Включает четыре основных объекта:

date − для лет, месяцев, дней

time − для часов, минут, секунд и их долей

datetime − для даты и времени одновременно

t imedate − для интервалов даты и/или времени

Пример

  • Сегодня